]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
8 years agokeyboard: Do not call KeyboardManager.holdKeyboard() with set-content-type
Takao Fujiwara [Fri, 31 Aug 2018 11:22:23 +0000 (20:22 +0900)]
keyboard: Do not call KeyboardManager.holdKeyboard() with set-content-type

When gnome-shell receives the signal of 'set-content-type' from ibus,
gnome-shell calls KeyboardManager.holdKeyboard() and
KeyboardManager.releaseKeyboard() and the functions change the current
input focus in GNOME Xorg and it could result in closing a popup window
which has a password entry by focusing on the entry.
The solution is to stop to call the APIs on 'set-content-type' signal.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/391

8 years agomessageTray: Disable unredirection while showing banners
Florian Müllner [Sun, 12 Aug 2018 23:25:13 +0000 (01:25 +0200)]
messageTray: Disable unredirection while showing banners

We don't usually show notification banners while the monitor is in
fullscreen, but when we do - the notification is urgent - we should
actually show the banner, even if the top-most window is unredirected.
To achieve that, disable unredirection while the banner is showing.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/430

8 years agoworkspaces: Use correct schema for workspace settings
Florian Müllner [Thu, 8 Nov 2018 09:47:25 +0000 (10:47 +0100)]
workspaces: Use correct schema for workspace settings

The custom overrides system is gone, we need to use the original
mutter schema.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/768

8 years agopolkit: Only unregister registered handles
Georges Basile Stavracas Neto [Thu, 22 Mar 2018 14:11:38 +0000 (11:11 -0300)]
polkit: Only unregister registered handles

If the initialization fails for some reason, for example by
running 'gnome-shell --replace', we should not crash because
of an attempt of unregistering an unregistered agent handle.

Fix that by checking if the handle is not NULL before calling
the unregistering routines.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/66

8 years agopolkit: Port to G_DECLARE_FINAL_CLASS
Georges Basile Stavracas Neto [Thu, 22 Mar 2018 13:50:20 +0000 (10:50 -0300)]
polkit: Port to G_DECLARE_FINAL_CLASS

So we can remove this old boilerplate code. In order to be able
to use that, the autoptr function for PolkitAgentListener was
added as well.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/66

8 years agoUpdate Spanish translation
Daniel Mustieles [Tue, 6 Nov 2018 11:04:19 +0000 (11:04 +0000)]
Update Spanish translation

8 years agoUpdate Brazilian Portuguese translation
Rafael Fontenelle [Mon, 5 Nov 2018 19:58:30 +0000 (19:58 +0000)]
Update Brazilian Portuguese translation

(cherry picked from commit e55bdb0fbbe4f0618b64461765161d4b2f697e7e)

8 years agoTheme: fix modal dialog button
Jakub Steiner [Fri, 2 Nov 2018 13:45:05 +0000 (14:45 +0100)]
Theme: fix modal dialog button

- allow for focused hover state

Fixes issue #727

8 years agoiconGrid: Keep icons reactive during pulse animation
Daniel van Vugt [Fri, 12 Oct 2018 04:00:31 +0000 (12:00 +0800)]
iconGrid: Keep icons reactive during pulse animation

The `reactive` property of icon actors was being restored multiple times
over the course of the pulse animation, all at slightly different times
as each icon finished animating at different times.

The problem is that toggling `reactive` on an `StWidget` incurs a style
change of the `insensitive` pseudo class, and style changes would quickly
queue relayouts incurring full stage reallocation. This occurred many times
during a pulse animation, limiting its smoothness and performance.

The solution is to not toggle the `reactive` property in the pulse
animation at all, which avoids incurring multiple full stage relayouts.

As a bonus, this means the icon under the cursor pulses with the correct
selection highlight, appearing more seamless and responsive.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/261

8 years agoiconGrid: Defer and group animation cleanup
Daniel van Vugt [Fri, 5 Oct 2018 09:09:22 +0000 (17:09 +0800)]
iconGrid: Defer and group animation cleanup

The `reactive` property of icon actors was being restored 24 times over
the course of the spring animation, all at slightly different times as
each icon finished animating at different times.

The problem is that toggling `reactive` on an `StWidget` incurs a style
change of the `insensitive` pseudo class, and style changes would quickly
queue relayouts incurring full stage reallocation. This occurred many times
during a spring animation hogging the CPU and limiting the frame rate.

The solution is defer and batch the cleanup for all icons until after the
last icon has finished animating. This way the CPU impact of the style
change and stage relayout isn't felt during the animation so the frame
rate remains higher and smoother. The overall CPU usage of the animation
is also reduced as the remaining relayouts are much more likely to be
grouped into a single frame.

Icon spring animation performance on an i7-7700:
Before: 83% CPU and 47 FPS
After : 78% CPU and 54 FPS
which is about a 22% increase in performance per clock (FPS/CPU).

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/253

8 years agoUpdate Malayalam translation
Anish Sheela [Sun, 28 Oct 2018 14:08:07 +0000 (14:08 +0000)]
Update Malayalam translation

8 years agoUpdated Slovenian translation
Matej Urbančič [Thu, 25 Oct 2018 19:40:05 +0000 (21:40 +0200)]
Updated Slovenian translation

8 years agoswitcherPopup: Bind to the stage, not the monitor
Georges Basile Stavracas Neto [Wed, 10 Oct 2018 20:46:26 +0000 (17:46 -0300)]
switcherPopup: Bind to the stage, not the monitor

The switcher popup is a large, mostly transparent actor that
should cover all the clickable area of GNOME Shell. In Clutter
terms, it should cover the whole stage.

By binding it to the primary monitor, the Alt+Tab behavior
becomes a bit inconsistent. For example, by not hiding when
clicking at empty spaces at other monitors.

Fix that by binding the SwitcherPopup to the whole stage,
and not only the primary monitor.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/647

8 years agoRemove padding from date strings
Carmen Bianca Bakker [Mon, 15 Oct 2018 14:50:02 +0000 (16:50 +0200)]
Remove padding from date strings

The padding is removed by using %-d instead of %e or %d.

Examples:

"%B %d %Y"  -> "October 04 2018"

"%B %e %Y"  -> "October  4 2018"

"%B %-d %Y" -> "October 4 2018"

https://gitlab.gnome.org/GNOME/gnome-shell/issues/666

8 years agoChange a translator comment to be less ambiguous
Carmen Bianca Bakker [Mon, 15 Oct 2018 14:43:36 +0000 (16:43 +0200)]
Change a translator comment to be less ambiguous

https://gitlab.gnome.org/GNOME/gnome-shell/issues/666

8 years agoUpdate Slovak translation
Dušan Kazik [Wed, 24 Oct 2018 06:31:09 +0000 (06:31 +0000)]
Update Slovak translation

8 years agoautomountManager: Add handling of udisks errors for no/wrong passwords
Sebastian Pinnau [Thu, 11 Oct 2018 17:14:25 +0000 (19:14 +0200)]
automountManager: Add handling of udisks errors for no/wrong passwords

If no password or a wrong password is entered after automounting an
encrypted device, then the password should be reasked. However, this
does not happen because the relevant udisks error messages for this
cases are missing in the exception handler that calls _reaskPassword.

Fix this issue by adding the relevant udisks error strings to the
exception handling in the _onVolumeMounted method.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/640

8 years agobuild: Include params.js in portal-helper gresources
verdre [Sat, 20 Oct 2018 15:21:02 +0000 (17:21 +0200)]
build: Include params.js in portal-helper gresources

Fix a regression causing the portal helper to crash.
In 94423151b2e1f5e2ee8ccc884c52f50673db5fb9 we moved the dbus interface
descriptions into seperate files which is why we had to include the
fileUtils js module. This module imports the params js module, so add
params.js to the gresources file for the portal helper.

8 years agopanel: Also ignore hidden windows for proximity
Florian Müllner [Tue, 23 Oct 2018 14:05:01 +0000 (16:05 +0200)]
panel: Also ignore hidden windows for proximity

We currently only ignore minimized windows, not windows that are
hidden for other reasons - namely on wayland windows are initially
hidden until they are placed.

This fixes a flicker in the transparent top bar on wayland when the
"position" of an unplaced window wrongly suggests the window is
overlapping the top bar.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/693

8 years agokeyboardManager: Avoid idempotent calls to meta_backend_set_keymap()
Carlos Garnacho [Mon, 22 Oct 2018 22:06:36 +0000 (00:06 +0200)]
keyboardManager: Avoid idempotent calls to meta_backend_set_keymap()

But still try to apply the keymap whenever the input sources changed. This
is a different approach to gnome-shell#240 that still avoid redundant
changes to the current keymap, but actually trigger one when input sources
are added.

https://bugzilla.redhat.com/show_bug.cgi?id=1637418

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/691
8 years agoosdWindow: Disconnect signals on destroy
Florian Müllner [Sun, 23 Sep 2018 01:06:21 +0000 (03:06 +0200)]
osdWindow: Disconnect signals on destroy

Since we started to show OSD windows on all monitors, OSD windows are
destroyed when the corresponding monitor is disconnected. We shouldn't
leave any signal handlers around in that case - they prevent the object
from being garbage collected, and trigger warnings for accessing proper-
ties of invalidated GObjects.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/602

8 years agoosdWindow: Ensure we setMaxLevel before setting Level itself
Didier Roche [Thu, 18 Oct 2018 15:26:03 +0000 (17:26 +0200)]
osdWindow: Ensure we setMaxLevel before setting Level itself

When maxLevel is > 100%, first OSD appearance was capping the current
level to 100%. Consecutives key press were then OK.
Ensure we setMaxLevel before setting Level itself, so that correct cap
value is applied.

8 years agoUpdate Esperanto translation
Kristjan SCHMIDT [Tue, 16 Oct 2018 21:02:53 +0000 (21:02 +0000)]
Update Esperanto translation

8 years agoFix enumeration in HACKING.md
Sergio Costas [Sun, 14 Oct 2018 12:05:04 +0000 (14:05 +0200)]
Fix enumeration in HACKING.md

The HACKING.md file contains an enumeration in the Indentation and
whitespace section, but the sentences look incorrectly divided.

This patch proposes a fix for that section, reordering all its
contents in a single enumeration, instead of a paragraph and
an enumeration, and also reconstruct the sentences.

8 years agoappFolder: Don't block all shortcuts
Florian Müllner [Thu, 11 Oct 2018 18:12:54 +0000 (20:12 +0200)]
appFolder: Don't block all shortcuts

App folder popups take a grab when opened, and as we don't pass any
particular pushModal() parameters, all keybindings are blocked. While
this makes sense for most keybindings that would interfere with the
popup interaction, others like volume/brightness keys or screenshots
can be allowed safely.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/648

8 years agopopupMenu: Handle keypress if numlock is enabled
Andrea Azzarone [Wed, 12 Sep 2018 20:13:04 +0000 (22:13 +0200)]
popupMenu: Handle keypress if numlock is enabled

Add exception to handle a keypress if numlock is enabled as we already do for
capslock. This uses Clutter.ModifierType.MOD2_MASK because at the moment there
is not a more explicit way to refer to the numlock mask.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/550
8 years agoshell: Remove ShellGenericContainer
Georges Basile Stavracas Neto [Fri, 13 Jul 2018 14:05:00 +0000 (11:05 -0300)]
shell: Remove ShellGenericContainer

Now that it is no longer used in GNOME Shell, let's
remove this old workaround. This commit also removes
the docs reference from the sgml file.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agodash: expand and center align DashItemContainer
Georges Basile Stavracas Neto [Thu, 13 Sep 2018 20:37:54 +0000 (17:37 -0300)]
dash: expand and center align DashItemContainer

This is necessary to keep the small actor that shows up
during drag motion center aligned.

8 years agopanel: Delegate container destruction to PanelMenu.ButtonBox
Georges Basile Stavracas Neto [Wed, 29 Aug 2018 01:37:27 +0000 (22:37 -0300)]
panel: Delegate container destruction to PanelMenu.ButtonBox

Instead of taking care of the PanelMenu.ButtonBox.container
destruction by itself, delegate that to the very object that
created it in the first place: PanelMenu.ButtonBox itself.

8 years agost-bin: Destroy child in ClutterActor:destroy vfunc
Georges Basile Stavracas Neto [Tue, 28 Aug 2018 20:29:13 +0000 (17:29 -0300)]
st-bin: Destroy child in ClutterActor:destroy vfunc

According to Clutter documentation, "[…] actors implementing the
ClutterContainer interface should override the default implementation
of the class handler of this signal and call clutter_actor_destroy()
on their  children."

StBin was doing that in GObject:dispose() instead. Move the child
destruction to a new ClutterActor:destroy() vfunc override.

8 years agokeyboard: Stop using Shell.GenericContainer
Georges Basile Stavracas Neto [Thu, 12 Jul 2018 12:36:46 +0000 (14:36 +0200)]
keyboard: Stop using Shell.GenericContainer

This is the last remaining usage of Shell.GenericContainer
in the codebase, and posed small challenges compared to the
other removals.

A new St.Widget subclass called InputSourceIndicatorContainer
was added as a replacement to the Shell.GenericContainer. It
was needed because GNOME Shell needs to override the regular
size allocation functions, but InputSourceIndicator already
is a St.Widget with its own size allocation overrides.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agotests: Stop using Shell.GenericContainer
Georges Basile Stavracas Neto [Fri, 13 Jul 2018 14:01:42 +0000 (11:01 -0300)]
tests: Stop using Shell.GenericContainer

The test doesn't look and behave like before, but they are
already broken in master anyway. This commit makes it work
without Shell.GenericContainer, but the test itself remains
to be fixed.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agoinspector: Stop using Shell.GenericContainer
Georges Basile Stavracas Neto [Mon, 9 Jul 2018 07:49:37 +0000 (09:49 +0200)]
inspector: Stop using Shell.GenericContainer

No alarms and no surprises here.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agoboxPointer: Stop using Shell.GenericContainer
Georges Basile Stavracas Neto [Tue, 21 Aug 2018 10:38:23 +0000 (07:38 -0300)]
boxPointer: Stop using Shell.GenericContainer

An easy removal too.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agoboxPointer: Add compatibility API
Georges Basile Stavracas Neto [Fri, 27 Jul 2018 16:15:16 +0000 (13:15 -0300)]
boxPointer: Add compatibility API

Because we're late in the cycle, and don't know how many
extensions actually rely on this API, this commit adds
back the BoxPointer.show() and .hide() functions, with
warning messages to notify consumers that this is going
to be removed.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agoboxPointer: Rename show/hide to open/close
Georges Basile Stavracas Neto [Tue, 21 Aug 2018 10:29:44 +0000 (07:29 -0300)]
boxPointer: Rename show/hide to open/close

Pretty much like dd4709bb2, BoxPointer's show() and hide()
functions will clash with Clutter.Actor's ones.

In addition to that, on a conceptual level, the current API
is not great, because calling boxPointer.hide() won't result
in boxPointer.actor.visible == false.

For these reasons, rename show() and hide() to open() and
close(). A compatibility layer will be added in a following
commit, warning about the usage of show() and hide().

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agologinDialog: Stop using Shell.GenericContainer
Georges Basile Stavracas Neto [Sat, 7 Jul 2018 11:30:18 +0000 (13:30 +0200)]
loginDialog: Stop using Shell.GenericContainer

Removing the Shell.GenericContainer from the login dialog
was remarkably easier, since it only overrides 'allocate'.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agolayoutManager: Subclass GObject.Object
Georges Basile Stavracas Neto [Tue, 21 Aug 2018 10:13:30 +0000 (07:13 -0300)]
layoutManager: Subclass GObject.Object

LayoutManager is currently a pure JavaScript class that
relies on the rudimentary Signals.addSignalMethods() to
handle signals. This is an inefficient implementation of
one of the most central classes in GNOME Shell.

In addition to removing Shell.GenericContainer, then,
turn LayoutManager into a proper GObject.Object subclass.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agolayoutManager: Stop using Shell.GenericContainer
Georges Basile Stavracas Neto [Sat, 7 Jul 2018 11:12:33 +0000 (13:12 +0200)]
layoutManager: Stop using Shell.GenericContainer

This one was remarkably easy to port. In order to make it,
replace the Shell.GenericContainer handlers by a constraint
and simply replace it by a St.Widget.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agoworkspaceSwitcherPopup: Stop using Shell.GenericContainer
Georges Basile Stavracas Neto [Sun, 15 Jul 2018 21:00:07 +0000 (18:00 -0300)]
workspaceSwitcherPopup: Stop using Shell.GenericContainer

Removing Shell.GenericContainer here was slightly trickier
because it required factoring out a new JavaScript class.

It's nevertheless a straightforward removal.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agomessageTray: Drop Shell.GenericContainer usage
Georges Basile Stavracas Neto [Fri, 6 Jul 2018 08:55:23 +0000 (10:55 +0200)]
messageTray: Drop Shell.GenericContainer usage

Nothing particularly outstanding with this class - it was
a straightforward removal and subclassing.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agobuttonBox: Drop Shell.GenericContainer usage
Georges Basile Stavracas Neto [Fri, 6 Jul 2018 08:48:15 +0000 (10:48 +0200)]
buttonBox: Drop Shell.GenericContainer usage

Another easy port.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agoappMenuButton: Rename show/hide to fadeIn/fadeOut
Georges Basile Stavracas Neto [Tue, 21 Aug 2018 09:48:19 +0000 (06:48 -0300)]
appMenuButton: Rename show/hide to fadeIn/fadeOut

In the next commit, we will turn PanelMenu.ButtonBox into a
St.Widget subclass. As a domino effect, PanelMenu.Button will
become one too, and so will Panel.AppMenuButton.

When that happens, the current show() and hide() functions in
Panel.AppMenuButton will clash with Clutter.Actor's ones.

To avoid that, rename these functions to fadeIn() and fadeOut()
and avoid a name clash.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agothumbnailBox: Stop using Shell.GenericContainer
Georges Basile Stavracas Neto [Fri, 6 Jul 2018 08:01:39 +0000 (10:01 +0200)]
thumbnailBox: Stop using Shell.GenericContainer

This is another straight port from Shell.GenericContainer.
The important thing to notice is that the calculation is
broken if the StThemeNode helpers (adjust_preferred_* and
adjust_for_*) aren't used.

The downside of this patch is that it removed the skip_paint
from the thumbnails. Keeping it would add an unecessarily
large amount of code.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agoiconGrid: Stop using Shell.GenericContainer
Georges Basile Stavracas Neto [Mon, 2 Jul 2018 14:03:07 +0000 (11:03 -0300)]
iconGrid: Stop using Shell.GenericContainer

Removing Shell.GenericContainer from the IconGrid class was
challenging because it needs the "skip paint" API from it.
This API was added, too, as a workaround to the inability
to override vfuncs from GJS.

The overrides are largely copy-pasted and translated versions
of the Shell.GenericContainer code.

The IconGrid:key-focus-in signal was renamed to :child-focused
to avoid clashing with ClutterActor:key-focus-in.

In GridSearchResults, the internal IconGrid had it's y_expand
set to false, so it doesn't push other search elements (the
list results mainly) to the bottom of the screen.

Because skip paint wasn't and still isn't a GObject property,
rename it to _skipPaint to reflect that.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agoiconGrid: Rename ::key-focus-in signal
Georges Basile Stavracas Neto [Tue, 21 Aug 2018 09:21:26 +0000 (06:21 -0300)]
iconGrid: Rename ::key-focus-in signal

As part of our quest to obsolete Shell.GenericContainer, IconGrid will
become a Clutter.Actor subclass. As the ::key-focus-in signal would
clash with Clutter.Actor::key-focus-in, rename it to ::child-focused.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agodash: Set scale and opacity on parent actor
Georges Basile Stavracas Neto [Thu, 23 Aug 2018 15:17:21 +0000 (12:17 -0300)]
dash: Set scale and opacity on parent actor

DashItemContainer currently animates the scale and opacity
of its child when zooming in. This is visible when adding
a new favorite item to the dash; the items will zoom in from
the center.

After the previous commit, however, the zoom animation got
slightly broken, and looked like the icon was coming from
the bottom instead of the center.

Fix that by setting the scale and opacity of DashItemContainer
itself, instead of its child. Remove the unused code after that
too.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agobaseIcon: Stop using Shell.GenericContainer
Georges Basile Stavracas Neto [Sat, 30 Jun 2018 18:00:08 +0000 (15:00 -0300)]
baseIcon: Stop using Shell.GenericContainer

Pretty much like the previous patches, this extends St.Bin. The
most interesting aspect of this patch is that most of the sizing
routines of the icons is now delegated to the actors and layout
managers, removing quite a bunch of code.

The 'spacing' theme property is now redirected to StBoxLayout's
spacing property. Also adjust the Dash code to stop forcing a
potentially invalid width in the first icon too.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agowindowIcon: Subclass St.BoxLayout
Georges Basile Stavracas Neto [Wed, 15 Aug 2018 19:02:49 +0000 (16:02 -0300)]
windowIcon: Subclass St.BoxLayout

Following the previous work, turn WindowIcon into a
St.BoxLayout subclass, and remove the this.actor
field from it.

8 years agost-box-layout: Pass correct allocation box to layout manager
Georges Basile Stavracas Neto [Fri, 24 Aug 2018 00:41:00 +0000 (21:41 -0300)]
st-box-layout: Pass correct allocation box to layout manager

StBoxLayout implements StScrollable, which, semantically, means that
the StBoxLayout size may not match the minimum size reported by the
layout manager. In this specific case, the layout manager by is a
ClutterBoxLayout by default. For example:

        +--------------+
        |   Viewport   |
 +------+--------------+-----------------+
 |      |              |                 |
 |      |              |     Content     |
 |      |              |                 |
 +------+--------------+-----------------+
        |              |
        +--------------+

So, assuming that:

 - ContentSize = the minimum size of the content;
 - ViewportSize = the allocated size of the viewport;

When allocating StBoxLayout, it must assume ViewportSize, but must
pass ContentSize to the layout manager. That way, the children of
StBoxLayout are correctly placed within it, even if it's bigger than
ViewportSize.

And here's the problem: right now, StBoxLayout assumes ViewportSize
AND also passes it to layout manager. Commit 77c4c6b6d specifically
exposed this bug by relying entirely on StBoxLayout to arrange the
app and window icons.

Fix that by using ViewportSize to allocate StBoxLayout itself, but
passing ContentSize to the layout manager.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agoswitcherList: Stop using Shell.GenericContainer
Georges Basile Stavracas Neto [Thu, 28 Jun 2018 15:34:01 +0000 (12:34 -0300)]
switcherList: Stop using Shell.GenericContainer

This commit removes all the uses of Shell.GenericContainer from
SwitcherPopup.SwitcherList. Compared to the other patches, this
one was specially trickier to get right, and a few invasive
changes needed to be done.

The most noticeable one is that the allocation of the items is
done entirely by St.BoxLayout -- we don't manually allocate them
anymore. To make it work, get_preferred_width() had to calculate
the correct value. It now assumes that:

 * Minimum width: the minimum width of the widest child.
 * Natural width: the minimum width of the StBoxLayout (use it
   instead of the natural width to force the labels to ellipsize
   when too long.)

The AppIcon class became a St.Widget subclass as well, to override
get_preferred_width() and be able to keep the squared shape.

Besides that, add a new SwitcherButton class to reimplement squared
icons without having to resort to hacks in the size allocation
machinery. This class has a single vfunc override to ensure that it
is squared when the SwitcherList is.

The arrows indicating multiple windows are now in this._list
actor to the SwitcherPopup itself, since this._list automatically
manages its own children now.

At last, adapt (but preserve) the hack in CyclerPopup.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agoswitcherList: Remove unused variable
Georges Basile Stavracas Neto [Thu, 28 Jun 2018 21:37:44 +0000 (18:37 -0300)]
switcherList: Remove unused variable

The title is self-explanatory, 'primary' was not being used
anywhere.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agoswitcherPopup: Use MonitorConstraint instead of vfunc overrides
Georges Basile Stavracas Neto [Thu, 23 Aug 2018 16:35:43 +0000 (13:35 -0300)]
switcherPopup: Use MonitorConstraint instead of vfunc overrides

Instead of overriding vfunc_get_preferred_width|height(), use the
already available Layout.MonitorConstraint to bind SwitcherPopup
to the primary monitor.

8 years agoswitcherPopup: Subclass St.Widget
Georges Basile Stavracas Neto [Mon, 13 Aug 2018 23:14:55 +0000 (20:14 -0300)]
switcherPopup: Subclass St.Widget

This commit turns SwitcherPopup.SwitcherPopup into a St.Widget
subclass, and gets rid of Shell.GenericContainer usage. Subclasses
were adapted to that too.

This class introduced a new challenge: it overrides show(). As per
discussions, we now call this.visible = true inside show().

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agoswitcherPopup: Rename destroy() to fadeAndDestroy()
Georges Basile Stavracas Neto [Mon, 13 Aug 2018 23:05:50 +0000 (20:05 -0300)]
switcherPopup: Rename destroy() to fadeAndDestroy()

In the process of purging all usages of Shell.GenericContainer
of GNOME Shell, one specific problematic situation that might
occur is when classes have functions that would clash with any
ClutterActor or StWidget function name.

One of such example is SwitcherPopup.destroy(). Right now, this
class is a pure JavaScript class that wraps a real actor, but
soon this will change, and it'll become a St.Widget subclass.

Another problem with functions that mimic the toolkit ones is
the predictability of them; after calling destroy(), that widget
is expected to not be available anymore. In SwitcherPopup case,
it is still available for a short while. In this case, that's not
a big problem, but the show() and hide() functions in other clases
are more problematic because the actor's visibility does not
follow that.

This commit is a first step in cleaning that up, and changes the
SwitcherPopup.destroy() to fadeAndDestroy().

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agopanel: Stop using Shell.GenericContainer
Georges Basile Stavracas Neto [Wed, 27 Jun 2018 19:02:15 +0000 (16:02 -0300)]
panel: Stop using Shell.GenericContainer

Shell.GenericContainer exposes the size negotiation machinery
through the use of signals. Signals are not specially performant.
One of the reasons is that they acquire a global lock for signal
handlers lookup. GNOME Shell has more than 2,000 actors at any
given point in time, up to 20 levels deep in hierarchy, making
size negotiation and painting non-trivial tasks. Such a critical
section of Clutter's machinery shouldn't rely on signals
whatsoever.

Regardless of that, Shell.GenericContainer is a workaround to
a non-existing issue anymore. It shouldn't be used anyway, and
any performance improvements that removing it can potentially
yield are bonuses to it.

This commit starts this work by removing Shell.GenericContainer
usage from Panel.Panel class. The class now extends St.Widget,
and as such, it has no "this.actor" field set anymore. A couple
of places where this actor field was used are adjuste as well.

It is important to notice that we now allocate the Panel itself
inside vfunc_allocate(). This was previously done before emitting
the signal by Shell.GenericContainer.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/153

8 years agoBump version to 3.30.1
Florian Müllner [Mon, 8 Oct 2018 18:35:07 +0000 (20:35 +0200)]
Bump version to 3.30.1

Update NEWS.

8 years agofileUtils: Make loadInterfaceXML usable from tests
Florian Müllner [Mon, 8 Oct 2018 19:24:00 +0000 (21:24 +0200)]
fileUtils: Make loadInterfaceXML usable from tests

The current code assumes that the resource has been installed,
which isn't the case when running distcheck.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/255

8 years agoinputMethod: Use forward_key() method to forward key events
Carlos Garnacho [Thu, 27 Sep 2018 19:09:02 +0000 (21:09 +0200)]
inputMethod: Use forward_key() method to forward key events

ClutterVirtualInputDevice has the limitation that event flags won't be
made to contain CLUTTER_EVENT_FLAG_INPUT_METHOD, possibly causing feedback
loops.

As the event gets injected up the platform dependent bits, we can avoid
care on not pressing the same key twice, we still expect coherence between
key presses and releases from the IM though.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/531

8 years agoappFavorites: Don't add app explicitly
Florian Müllner [Sun, 12 Aug 2018 00:17:42 +0000 (02:17 +0200)]
appFavorites: Don't add app explicitly

When adding a favorite, we add the ID to the list of favorites, save the
setting and add the new app to the favorites map. However as writing the
settings value already results in reload() to update the favorites map,
the new app is usually already in the map when we add it.

The only exception is when the ID was found in the RENAMED_DESKTOP_IDS map,
in which case we end up adding both the renamed app and the original one.
Fix this by simply relying on reload() to properly update the map, just like
we already do in _removeFavorite().

https://gitlab.gnome.org/GNOME/gnome-shell/issues/471

8 years agolayout: Don't update input region on wayland
Florian Müllner [Tue, 4 Sep 2018 15:35:39 +0000 (17:35 +0200)]
layout: Don't update input region on wayland

We already see all events on wayland, so we can save us the work
of computing the XFixes region there.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/273

8 years agocloseDialog: Untrack chrome when window loses focus
Florian Müllner [Tue, 4 Sep 2018 11:53:24 +0000 (13:53 +0200)]
closeDialog: Untrack chrome when window loses focus

On X11, reactive chrome must be added to the input region in order
to work as expected. However that region works independently from
any window stacking, with the result that the unresponsive-app dialog
currently blocks all input in the "covered" area, even in windows
stacked above the unresponsive window.

The correct fix would be to track the unobscured parts of the dialog
and set the input region from that, but that's quite cumbersome. So
instead, only track chrome when the corresponding window is focused
(or the dialog itself of course).

https://gitlab.gnome.org/GNOME/gnome-shell/issues/273

8 years agoautomountManager: Explicitly track active operations
Florian Müllner [Fri, 5 Oct 2018 17:09:28 +0000 (19:09 +0200)]
automountManager: Explicitly track active operations

As a mount operation's UI may be reused (for example after mistyping
the password), we only close the operation once the mount has finished
(successfully or with error).

We therefore need to track ongoing operations, which we currently do
by monkey-patching the corresponding volume object. However while the
underlying GVolume object indeed remains the same through-out the
operation, the JS wrapper object isn't referenced anywhere and may
thus be garbage collected, resulting in a stuck dialog.

Fix this issue by tracking active operations explicitly, so that all
involved objects are referenced until the end of the operation.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/565

8 years agoUpdate Chinese (Taiwan) translation
Cheng-Chia Tseng [Mon, 8 Oct 2018 12:47:45 +0000 (12:47 +0000)]
Update Chinese (Taiwan) translation

8 years agoUpdated Czech translation
Marek Černocký [Sun, 7 Oct 2018 12:27:08 +0000 (14:27 +0200)]
Updated Czech translation

8 years agoviewSelector: Don't unfocus other modals on reset
Andrea Azzarone [Thu, 4 Oct 2018 13:05:44 +0000 (14:05 +0100)]
viewSelector: Don't unfocus other modals on reset

Don't drop the key focus on Clutter's side if anything but the overview has
pushed a modal (e.g. system modals when activated using the overview).

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/618
8 years agoinputMethod: Fix setting surrounding text
Florian Müllner [Tue, 11 Sep 2018 13:36:35 +0000 (15:36 +0200)]
inputMethod: Fix setting surrounding text

The underlying ibus method expects an object of type IBusText rather
than a plain string.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/228

8 years agoappFavorites: Add evince to rename list
Bastien Nocera [Thu, 4 Oct 2018 15:54:01 +0000 (17:54 +0200)]
appFavorites: Add evince to rename list

Evince 3.30 changed the desktop filename. Without this patch,
evince will disappear from the dock.

8 years agoUpdate Belarusian translation
Yuras Shumovich [Wed, 3 Oct 2018 11:40:33 +0000 (11:40 +0000)]
Update Belarusian translation

8 years agoUpdate Finnish translation
Jiri Grönroos [Tue, 2 Oct 2018 17:00:51 +0000 (17:00 +0000)]
Update Finnish translation

8 years agoUpdate Serbian translation
Марко Костић [Tue, 2 Oct 2018 16:53:31 +0000 (16:53 +0000)]
Update Serbian translation

8 years agoUpdate Russian translation
Stas Solovey [Tue, 2 Oct 2018 15:24:13 +0000 (15:24 +0000)]
Update Russian translation

8 years agoUpdate Hungarian translation
Balázs Meskó [Tue, 2 Oct 2018 15:21:02 +0000 (15:21 +0000)]
Update Hungarian translation

8 years agore-commit Danish translation as exported from damned lies in order to re-enable suspi...
Ask Hjorth Larsen [Tue, 2 Oct 2018 14:32:58 +0000 (16:32 +0200)]
re-commit Danish translation as exported from damned lies in order to re-enable suspicious obsolete strings.  Related to #614.

8 years agoUpdate Galician translation
Fran Dieguez [Sun, 30 Sep 2018 16:19:43 +0000 (16:19 +0000)]
Update Galician translation

8 years agoUpdated Czech translation
Marek Černocký [Sun, 30 Sep 2018 06:55:19 +0000 (08:55 +0200)]
Updated Czech translation

8 years agoUpdate Polish translation
Piotr Drąg [Thu, 27 Sep 2018 19:50:11 +0000 (21:50 +0200)]
Update Polish translation

8 years agoUpdate Serbian translation
Марко Костић [Wed, 26 Sep 2018 21:24:57 +0000 (21:24 +0000)]
Update Serbian translation

8 years agohistory: Stop saving non-consecutive duplicate entries
Pascal Nowack [Sat, 22 Sep 2018 15:43:22 +0000 (17:43 +0200)]
history: Stop saving non-consecutive duplicate entries

Whenever a command runs in the run dialog, it
will be added to the history unless it is
already the last entry. This does not apply
for entries that are not consecutive, which can
result in long chains of commands which
alternate, e.g. lg, r, lg, r, lg, r. Not only is
this wasteful in terms of space, but also
inconsistent with how history works elsewhere,
e.g. in the shell.

Therefore, remove entries in the history that are
equal to the one that will be added to the end of
of the history when the entry already exists.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/524

8 years agonetworkAgent: Ask for wifi secrets in the hints paremeter
Andrew Zaborowski [Tue, 18 Sep 2018 03:47:43 +0000 (05:47 +0200)]
networkAgent: Ask for wifi secrets in the hints paremeter

The `hints` and `settingName` parameters to the agent call may define
the specific list of secrets NM actually needs from the user.  This
seems to have been the intended use of these two parameters but only
recently did NM with the IWD backend start to use this to request 802.1x
secrets.  So if `hints` is provided, ask user for the specific secrets
listed there and don't even look at what type of EAP method is in use.
Only the three types of secrets actually in use by NM's IWD backend are
supported for now -- they happen to be the same three that
_get8021xSecrets() had already supported.

8 years agoshell: Fix list of GIR includes
Florian Müllner [Fri, 14 Sep 2018 21:14:33 +0000 (23:14 +0200)]
shell: Fix list of GIR includes

gjs now relies entirely on introspection data to determine parent
types and implemented interfaces, so in order to have all methods
and properties resolve correctly, we must include the corresponding
GIRs of all types used.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/574

8 years agobuild: Remove obsolete soup dependency
Florian Müllner [Fri, 14 Sep 2018 22:16:47 +0000 (00:16 +0200)]
build: Remove obsolete soup dependency

It's unused since commit 96396163c ...

https://gitlab.gnome.org/GNOME/gnome-shell/issues/574

8 years agokeyboard: Listen to IbusPanelService::focus-in/out to track focus changes
Carlos Garnacho [Tue, 18 Sep 2018 10:54:29 +0000 (12:54 +0200)]
keyboard: Listen to IbusPanelService::focus-in/out to track focus changes

In X11 there's no input panel state requests, so restore the previous behavior
that focused entries would always toggle the OSK on there.

8 years agokeyboard: Filter redundant FocusTracker::position-changed signals
Carlos Garnacho [Mon, 17 Sep 2018 19:04:48 +0000 (21:04 +0200)]
keyboard: Filter redundant FocusTracker::position-changed signals

Just emit the signal if it did actually change.

8 years agoworkspacesView: initialize self._restackedNotifyId
Will Thompson [Tue, 25 Sep 2018 22:00:53 +0000 (23:00 +0100)]
workspacesView: initialize self._restackedNotifyId

This attribute was previously only assigned in show(). hide() compares
this attribute to 0. If hide() is called before show() is first called,
the comparison would give the correct result (undefined > 0 is false)
but log a warning:

    JS WARNING: [resource:///org/gnome/shell/ui/workspacesView.js 529]:
    reference to undefined property "_restackedNotifyId"

Initialize this attribute in _init(), alongside _scrollEventId and
_keyPressEventId which are also used in hide().

8 years agoendSessionDialog: squash "reference to undefined property" warning
Will Thompson [Tue, 25 Sep 2018 17:01:36 +0000 (18:01 +0100)]
endSessionDialog: squash "reference to undefined property" warning

dialogContent is set to one of the elements of the list DialogContent,
but not all of those have a checkBoxText property. When logging out (as
opposed to shutting down), this causes a warning:

    JS WARNING: [resource:///org/gnome/shell/ui/endSessionDialog.js
    763]: reference to undefined property "checkBoxText"

(The line number corresponds to this line in 3.28.3.)

The warning is apparently not triggered if the undefined property is
used as part of a boolean expression:

    gjs> var x = {};
    gjs> x.a;
    typein:2:1 strict warning: reference to undefined property "a"
    gjs> if (x.b) { log('oh no'); }
    gjs> x.c || ''
    ""
_setCheckBoxLabel() just checks the truthiness of its 'text' argument,
and the empty string is false-y, so passing '' rather than undefined has
no functional effect.

8 years agosubmodules: Replace non-functional git.gnome.org URL by GNOME Gitlab URL
Andre Klapper [Tue, 25 Sep 2018 06:41:30 +0000 (08:41 +0200)]
submodules: Replace non-functional git.gnome.org URL by GNOME Gitlab URL

Fixes #606

8 years agoUpdate Estonian translation
Mart Raudsepp [Sun, 23 Sep 2018 21:32:41 +0000 (21:32 +0000)]
Update Estonian translation

8 years agoUpdate Estonian translation
Madis O [Sun, 23 Sep 2018 21:23:58 +0000 (21:23 +0000)]
Update Estonian translation

8 years agoFix connection to wifi APs from user menu (RH #1628263)
Adam Williamson [Tue, 18 Sep 2018 23:05:42 +0000 (16:05 -0700)]
Fix connection to wifi APs from user menu (RH #1628263)

In recent Fedora 29, connecting to wifi access points from the
user menu (top-right menu) does not work. Clicking the 'Connect'
button just animates it but does nothing else. The logs show an
error "JS ERROR: Error: Expected type utf8 for Argument
'specific_object' but got type 'undefined'".

Looking into this, it seems the problem is these uses of the
`path` property of an NMAccessPoint. NMAccessPoint inherits
from NMObject, and NMObject *does* have a path property:

https://developer.gnome.org/libnm/stable/NMObject.html#NMObject--path

so at first glance this seems fine. But I poked around a bit
using libnm via Python (which goes via introspection, just like
this JS code does), and found that indeed AccessPoint objects
don't seem to have a `path` property there either.

Looking at the libnm code, this actually makes sense, because
the property is marked "(skip)":

https://github.com/NetworkManager/NetworkManager/blob/master/libnm/nm-object.c#L1291

and the introspection docs suggest that means it should be left
out of introspected output:

https://wiki.gnome.org/Projects/GObjectIntrospection/Annotations#Symbol_visibility

I'm a bit concerned that this was only found recently - whereas
the change to use `.path` in gnome-shell dates from October 2017
(d71af5e5) and the property has been marked (skip) in NM since
at least 2016 - but this all seems to add up. The obvious fix is
to replace use of `.path` with `.get_path()`, which returns the
path and is *not* marked (skip) and so *is* available via
introspection. I tested that this works in Python and also did
a test build of gnome-shell with this change and installed it on
an affected system, it does seem to fix the bug.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
8 years agoUpdate Arabic translation
Khaled Hosny [Tue, 18 Sep 2018 10:44:00 +0000 (12:44 +0200)]
Update Arabic translation

8 years agoinputMethod: Add a null-check for text in vfunc_set_surrounding.
Andrea Azzarone [Mon, 17 Sep 2018 16:00:04 +0000 (18:00 +0200)]
inputMethod: Add a null-check for text in vfunc_set_surrounding.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/579

8 years agobuild: Fix build with gtk-doc=true
Pascal Nowack [Mon, 17 Sep 2018 12:19:13 +0000 (14:19 +0200)]
build: Fix build with gtk-doc=true

Commit a76b28bd moved the dbus-interfaces to the
dbus-interfaces directory without changing the
path for docs build as well, resulting in a fail
of the build when building with gtk_doc=true.

So change the path in the build accordingly to
ensure that the build does not fail when building
with gtk_doc=true.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/236

8 years agofileUtils: Fix fallback code for old gjs
Florian Müllner [Mon, 17 Sep 2018 10:56:37 +0000 (12:56 +0200)]
fileUtils: Fix fallback code for old gjs

gjs's D-Bus convenience explicitly expects a string representation
of an interface, but the new convenience method to load an XML
description from a resource introduced in commit f42d9df3e0 only
returns a string when using gjs from the GNOME 3.30 release. We
have so far managed to keep compatibility with the previous stable
gjs release, so fix up the fallback code to cast to string.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/578

8 years agodbus: Move all interface descriptions into the resource
Florian Müllner [Thu, 6 Sep 2018 00:55:20 +0000 (02:55 +0200)]
dbus: Move all interface descriptions into the resource

https://gitlab.gnome.org/GNOME/gnome-shell/issues/537

8 years agofileUtils: Add helper for loading D-Bus XML from resource
Florian Müllner [Thu, 6 Sep 2018 00:04:47 +0000 (02:04 +0200)]
fileUtils: Add helper for loading D-Bus XML from resource

Commit dbf993300a moved all inline D-Bus interface descriptions to template
strings so we can stop escaping line breaks.

Unfortunately that unveiled a grave bug in xgettext, which currently cannot
handle files that contain both backtick and slash characters - as a result,
translations from affected files have started to disappear as translators
run xgettext/msgmerge.

Instead of reverting the change and getting the crusty escaping back, we
will take this as an opportunity to stop inlining the XML altogether and
load it from a resource instead.

To facilitate that, add a small helper method that loads a D-Bus interface
description from a dedicated resource bundle.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/537

8 years agodata: Document org.gnome.Shell.Extensions interface
Florian Müllner [Thu, 6 Sep 2018 16:54:14 +0000 (18:54 +0200)]
data: Document org.gnome.Shell.Extensions interface

It is used by at least Software, Tweaks and the webextension, so it's
a bit odd to install documentation for lesser used interfaces but not
this one ...

https://gitlab.gnome.org/GNOME/gnome-shell/issues/537

8 years agodata: Move D-Bus interface descriptions into a subdir
Florian Müllner [Thu, 6 Sep 2018 14:29:26 +0000 (16:29 +0200)]
data: Move D-Bus interface descriptions into a subdir

We'll soon move the inlined XML of all interfaces we export or consume into
separate files. That's a significant increase from the interfaces for which
we install documentation, so it makes sense to use a dedicated subdir.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/537

8 years agoUpdate Slovak translation
Dušan Kazik [Sun, 16 Sep 2018 06:43:25 +0000 (06:43 +0000)]
Update Slovak translation

8 years agokeyboard: Remove leftover call to get_current_time
Andrea Azzarone [Fri, 14 Sep 2018 10:18:38 +0000 (12:18 +0200)]
keyboard: Remove leftover call to get_current_time